<?
class Rule_SignupLogin extends Rule
{
	public $error_message="Допустимы русские и латинские буквы,<br> цифры, пробел, знак подчеркивания и тире";
	
	function Check($hash)
	{
		// на входе смотрим 2 параметра:
		// $hash[url] - приведенный к латинице логин
		// $hash[login] - имя на сайте
		if(!$hash['url']) return true;
		
		// совпадения с зарезервированными словами
		$reserved = array('www','ajax','submit','admin','administrator','diets','ns1','ns2','ns3','mail','moderator','editor','dietsru','brevi','huggies','lego','duplo','nestle','mothercare','chicco','libero','pampers','nan','hipp','bebi','mustela','weleda','np','remington','vl');
		if(in_array(strtolower($hash['url']),$reserved)) 
		{
			$this->error_message = "Выбранное имя совпадает с одним из зарезирвированных слов,<br>его нельзя использовать";
			return false;
		}
		
		// проверяем на смешанные русские и латинские символы в пределах одного слова
		$str = str_replace('-',' ', $hash['login']);
		$str = str_replace('_',' ', $str);
		$words = explode(' ', $str);
		foreach($words as $word)
		{
			if(Misc::hasRus($word) && Misc::hasLatin($word))
			{
				$this->error_message = "Пожалуйста, не используйте в одном слове одновременно русские и латинские буквы";
				return false;
			}
		}
		
		// общего вида регулярка для итоговых УРЛ-ов - в начале и конце должен быть символ
		$re = "/^[a-z0-9][a-z0-9_\-]+[a-z0-9]$/";
		if(preg_match($re, $hash['url'] )) return true;
		return false;
	}
}